home *** CD-ROM | disk | FTP | other *** search
/ Merciful 2 / Merciful - Disc 2.iso / software / k / kids7.dms / kids7.adf / CLIMB.AMOS / CLIMB.amosSourceCode < prev    next >
AMOS Source Code  |  1992-10-04  |  6KB  |  170 lines

  1. Dim RVL(20),ANS(3)
  2. Global COUNT,RVL(),ANS(),LIM,ANSWER,ROX,ROY,SEL,NAME$,SCORE,LEVEL,XX$,LAPS
  3. STUP
  4. Procedure STUP
  5.    ROX=0 : ROY=0 : ANSWER=0 : LIM=5 : COUNT=1 : Colour Back $70
  6.    STRIPPER
  7.    Randomize Timer : PHIL
  8.    Unpack 10 To 0 : Screen Display 0,120,34,, : Unpack 11 To 1 : Screen To Back : Get Fonts 
  9.    For N=1 To 5 : Channel N To Bob N : Next N
  10.    Screen 0 : Double Buffer : FALL : RIGHTON
  11.    Screen 1 : Set Font 3 : Get Bob 3,0,0 To 233,46 : Screen 0 : Limit Mouse 424,179 To 426,292
  12.    For N=290 To 260 Step -2 : Bob 3,54,N,3 : Wait Vbl : Next N : Wait Vbl 
  13.    Paste Bob 54,260,3 : Wait Vbl : Bob Off 3 : LAPS=Timer
  14.    ROCKERS
  15. End Proc
  16. Procedure FALL
  17.    X=-8
  18.    For M=1 To 3
  19.       For N=-40 To -20 Step 5 : Bob 2,X,N,1 : Sam Play 15,1,Abs(N)*120 : Wait 8 : Add X,4 : Next N
  20.    Next M
  21.    For N=-20 To 52 : Bob 2,X,N,1 : Wait Vbl : X=X+1 : Next N
  22.    Wait 8 : Sam Play 9,3,2000 : Wait 4 : Sam Play 6,1,2000
  23.    For N=0 To 40 : Screen Offset 0,N,N : Wait Vbl : Next N
  24.    A$="A 0,(1,25)(2,25)" : A$=A$+"L: M -20,0,20; P; M 0,-4,5; M 0,4,2; M 20,0,40; P; M 0,-4,5; M 0,4,2; J L"
  25.    Channel 2 To Bob 2 : Amal 2,A$ : Amal On 2
  26.    If LEVEL=1 Then Bob 7,160,50,8 Else Bob 7,160,50,9
  27. End Proc
  28. Procedure RIGHTON
  29.    Unpack 11 To 1 : Screen To Back : SP=COUNT : TX=0
  30.    Screen 1 : Gr Writing 8 : Set Font 3
  31.    For N=1 To LIM
  32.       ST$=Str$(RVL(SP)) : If LIM=3 Then ST$=Str$(ANS(N))
  33.       ST$=ST$-" " : TT=Text Length(ST$) : RX=(45-TT)/2 : RX=RX+TX+4 : Inc SP
  34.       Set Text 2 : Ink 30 : Text RX-2,31,ST$ : Set Text 0 : Ink 3 : Text RX,30,ST$ : Add TX,45
  35.    Next N
  36. End Proc
  37. Procedure PHIL
  38.    For N=1 To 3 : ANS(N)=0 : Next N
  39.    If LEVEL=1 : For N=1 To 15 : RVL(N)=N : Next N : End If 
  40.    If LEVEL=2
  41.       For N=1 To 5 : RVL(N)=Rnd(5)+1 : Next N
  42.       For N=6 To 9 : RVL(N)=RVL(N-5)+RVL(N-4) : Next N
  43.       For N=10 To 12 : RVL(N)=RVL(N-4)+RVL(N-3) : Next N
  44.       For N=13 To 14 : RVL(N)=RVL(N-3)+RVL(N-2) : Next N
  45.       RVL(15)=RVL(13)+RVL(14)
  46.    End If 
  47.    If LEVEL=3
  48.       For N=1 To 5 : RVL(N)=Rnd(14)+1 : Next N
  49.       For N=6 To 9 : RVL(N)=RVL(N-5)+RVL(N-4) : Next N
  50.       For N=10 To 12 : RVL(N)=RVL(N-4)+RVL(N-3) : Next N
  51.       For N=13 To 14 : RVL(N)=RVL(N-3)+RVL(N-2) : Next N
  52.       RVL(15)=RVL(13)+RVL(14)
  53.    End If 
  54. End Proc
  55. Procedure ROCKERS
  56.    ROX=76 : ROY=224 : COUNT=6
  57.    While COUNT<16
  58.       Repeat 
  59.          For N=1 To 3
  60.             Repeat 
  61.                T=Rnd(2)+1 : I=Rnd(1) : If I=0 Then T=T*-1
  62.                ANS(N)=RVL(COUNT)+T
  63.             Until ANS(N)>0
  64.          Next N
  65.       Until ANS(1)<>ANS(2) and ANS(1)<>ANS(3) and ANS(2)<>ANS(3)
  66.       T=Rnd(2)+1 : ANS(T)=RVL(COUNT) : ANSWER=T
  67.       GROCK
  68.    Wend 
  69.    TUMBLE
  70. End Proc
  71. Procedure GROCK
  72.    LIM=3 : RIGHTON : TX=0 : BX=258 : Screen 0
  73.    A1$="L: M -10,0,80; P; M 10,0,80; P; J L"
  74.    A2$="L: M 10,0,80; P; M -10,0,80; P; J L"
  75.    A3$="L: M -5,0,50; P; M 5,0,50; P; J L"
  76.    For N=3 To 5
  77.       Get Bob 1,N,TX,0 To TX+46,47 : TX=TX+46
  78.    Next N
  79.    For N=3 To 5
  80.       For M=300 To BX Step -6
  81.          Bob N,320,M,N : Wait Vbl 
  82.       Next M
  83.       BX=BX-44 : Sam Play 15,3,9000
  84.    Next N
  85.    Amal 3,A1$ : Amal On 3 : Amal 4,A2$ : Amal On 4 : Amal 5,A3$ : Amal On 5
  86.    Repeat 
  87.       MK=0 : SEL=0
  88.       If LEVEL>1
  89.          For N=1 To 4 : Bob 7,ROX+15,ROY+50,7 : Wait 10 : Sam Play 15,1,7000 : Bob Off 7 : Wait 5 : Next N
  90.       Else 
  91.          Bob Off 7
  92.       End If 
  93.       Repeat 
  94.          MY=Y Screen(Y Mouse) : MK=Mouse Key
  95.       Until MK>0
  96.       If MY>177 and MY<222 Then SEL=3
  97.       If MY>222 and MY<263 Then SEL=2
  98.       If MY>263 and MY<306 Then SEL=1
  99.    Until MK>0 and SEL>0
  100.    Sam Play 6,1,15000
  101.    For N=3 To 5 : Amal Off N : Next N
  102.    For N=3 To 5
  103.       If SEL<>N-2
  104.          BLAST[N]
  105.       End If 
  106.    Next N
  107.    If Y Bob(SEL+2)<260
  108.       For N=Y Bob(SEL+2) To 260 Step 4
  109.          Bob SEL+2,,N,SEL+2 : Wait Vbl 
  110.       Next N
  111.    End If 
  112.    For N=320 To ROX Step -4
  113.       Bob SEL+2,N,,SEL+2 : If N mod 2=0 Then Wait Vbl : Sam Play 15,3,17500
  114.    Next N
  115.    For N=260 To ROY Step -1
  116.       Bob SEL+2,,N,SEL+2 : If N mod 2=0 Then Wait Vbl : Sam Play 15,3,12000
  117.    Next N
  118.    If ANSWER=SEL
  119.       Paste Bob ROX,ROY,SEL+2 : Wait Vbl : Bob Off SEL+2 : SCORE=SCORE+5
  120.       Add ROX,46 : Inc COUNT
  121.       If COUNT=6
  122.          Add ROY,-37 : ROX=98
  123.       End If 
  124.       If COUNT=10
  125.          Add ROY,-37 : ROX=100
  126.       End If 
  127.       If COUNT=13
  128.          Add ROY,-37 : ROX=122
  129.       End If 
  130.       If COUNT=15
  131.          Add ROY,-37 : ROX=144
  132.       End If 
  133.    Else 
  134.       BLAST[SEL+2]
  135.       SCORE=SCORE-10
  136.    End If 
  137. End Proc
  138. Procedure BLAST[BOA]
  139.    X=X Bob(BOA) : Y=Y Bob(BOA)
  140.    Sam Play 15,2,8000
  141.    Bob BOA,X,Y+5,10 : Wait 6
  142.    Bob BOA,X,Y+10,10 : Wait 5
  143.    Bob BOA,X,Y+15,11 : Wait 4
  144.    Bob BOA,X,Y+20,11 : Wait 3
  145.    Bob BOA,X,Y+30,12 : Wait 2
  146.    Bob BOA,X,Y+40,12 : Wait Vbl 
  147.    Bob Off BOA
  148. End Proc
  149. Procedure TUMBLE
  150.    X=160 : Amal Off 2
  151.    For N=85 To 269 Step 40
  152.       Bob 2,X,N,6 : Wait 16 : Add X,22
  153.    Next N
  154.    A1$="L: M 10,-40,30; M 10,40,30; J L" : Amal 2,A1$ : Amal On 2
  155.    Wait 200 : Dim STORE(31) : For N=0 To 31 : STORE(N)=Colour(N) : Next N : Amal Off : Bob Off 
  156.    Fade 3,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,
  157.    Colour Back $BBB : Wait 45 : Cls 21 : For N=0 To 31 : Colour N,STORE(N) : Next N : Amal Off : Wait 2 : Cls 21 : Set Font 3
  158.    Ink 14,21 : Box 59,59 To 369,289 : Ink 13, : Box 58,58 To 370,290 : Ink 14, : Box 57,57 To 371,291
  159.    Ink 4,21 : T=Timer-LAPS : T=15000-T : T=T/100 : SCORE=SCORE+T : Screen Close 1
  160.    Text 120,120,"That  was  quick!"
  161.    Text 75,150,"You  have "+Str$(T)+"  bonus  points."
  162.    Text 75,190,"          Your  score  is "+Str$(SCORE)
  163.    A$=NAME$+"|"+Str$(LEVEL)+"/"+XX$+"\"+Str$(SCORE) : Command Line$=A$
  164.    Run "KIDS-7:CARDS.AMOS"
  165. End Proc
  166. Procedure STRIPPER
  167.    A$=Command Line$ : A=Instr(A$,"|") : B=Instr(A$,"/") : C=Instr(A$,"\") : L=Len(A$)
  168.    NAME$=Left$(A$,A-1) : L$=Mid$(A$,A+1,B-A-1) : LEVEL=Val(L$)
  169.    XX$=Mid$(A$,B+1,C-B-1) : S$=Right$(A$,L-C) : SCORE=Val(S$) : Mid$(XX$,1,1)="."
  170. End Proc